Monitoring of physical training events

ABSTRACT

A computer-implemented method is disclosed that includes instructing a human player to perform a plurality of different actions in a determined order with a physical basketball, including actions of bouncing the physical basketball, and obtaining, with one or more electronic sensors, data that characterizes motion of the physical basketball being handled by the human player who is performing the instructed actions at a location. The method also includes communicating the data from the sensors to a console videogame system that is proximate to the location, and graphically representing, in a videogame displayed on a display device, performance by the human player, the performance being affected by the captured data, the representation of performance by the human player being compared against a standard of performance.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit to U.S. application Ser. No. 13/259,842,filed Sep. 23, 2011, which claims benefit to National StageInternational Application No. PCT/US2010/029068, filed Mar. 29, 2010,which claims the benefit of U.S. provisional application 61/164,277filed Mar. 27, 2009, and U.S. provisional application 61/249,526 filedOct. 7, 2009. The disclosure of all of the foregoing prior applicationsare considered part of, and are incorporated by reference in, thedisclosure of this application in their entirety.

TECHNICAL FIELD

This document relates to systems and techniques for automaticallyidentifying characteristics of movement of a sports ball during athletictraining drills, and of using such monitored motion to makedeterminations about physical ability of a test subject.

BACKGROUND

Athletics has become an integral part of society, with multipletelevision channels dedicated to sporting events, with professionalathletes promoting all sorts of products, and with the public holdingstar athletes—both amateur and professional—in high regard, so as tosupport financial rewards such as college scholarships, sponsorshipopportunities, and other revenue-generating careers. With greatergeneral attention on athletics comes greater attention on improvingathletic performance. Today's athletes, beginning as early as theelementary school level, specialize in particular areas and trainyear-round to improve their skills and their conditioning. Withathletics leading to a possibly lucrative career for some, and toacademic assistance in the form of scholarships to others, more and moreathletes have looked to improve their performance in various manners.

Good coaching and personal dedication are some of the best known ways toimprove an athlete's performance. A talented coach can often observesubtle problems in an athlete's style of play, and can direct the playerto correct those problems. Likewise, a talented trainer can direct anathlete to follow certain regimens to improve physiological weaknesses.

Despite the talent and experience obtained by many top coaches orathletic experts, human perception can capture and fully appreciate onlya small subset of the factors that affect an athlete's performance.Thus, despite years of observing how different athletes compete in agiven sport or having competed for many years themselves, the mosthighly skilled trainers and coaches still do not have the ability toquantify very small differences in motion of what they see. Thesedifferences in motion can be the most important elements in comparingand diagnosing a player's skill. Also, techniques that rely on humanobservation and judgment are prone to a high degree of opinion or biasbased on the perceptions of any single observer. This bias, and the widevariability of what any given observer believes they are seeing,negatively affects the advice that coaches and trainers can provide toathletes, and also negatively affects the athletes' perception of theadvice they are being given (i.e., an athlete may ignore good advice ifthey think that the provider of the advice does not appreciate theirabilities).

In some sports that require a combination of physical athletic skill,muscle memory, and hand-eye coordination skills to be used whilesimultaneously moving an athletic object, such as a ball, while underpressure situations, the ability to objectively quantify and comparediscrete skill differences between players is almost impossible usinghuman perception. The net effect of the inability to standardize theunseen elements of skill has been an over-reliance on only themeasurable physical aspects of certain sports, such as athletic speed,strength, and jumping, which causes many highly skilled athletes to beoverlooked.

SUMMARY

This document describes systems and techniques that may be used toquantify and benchmark an athlete's current skill proficiency usingsensors that capture discrete movements of an athletic device, such as abasketball or soccer ball, while it is in motion so as to link athleticproficiency of the athlete to their ability to control the athleticdevice, compare the related performance of the athlete controlling themovement of the athletic device to the performance of other athletesthat has been aggregated to provide base performance indicators, and toprovide feedback for an athlete so that they can improve theirperformance.

To measure the proficiency of athletic skills, motion sensor devices maybe used to monitor the movement of a sports ball to assess variousforces that an athlete applies to the ball, such as forces that createacceleration and spin on the ball. Computer systems can measure theseforces to recognize patterns of the forces that reflect a degree towhich the athlete has trained his or her muscles and hand-eyecoordination to apply those forces consistently. Computer-implementedsystems can perform a quick and consistent analysis of the sensormeasurements so as to create a summary of quantified results forcomparative purposes. With algorithms that can analyze the data in aconsistent and fast manner, the related output of the devices can bereliably delivered to athletes in a time efficient manner so as toprovide immediate and meaningful improvement feedback.

Motion-related data from the athletic device, such as acceleration androtation data, can be identified and compiled into meaningful samples,and the samples can be compared to a large number of other samplescollected in a similar fashion from athletes having known skill levels.For example, the characteristics of athletic performance for a certainaction or athletic drill performed while using an athletic device can bedetermined for each level of play, e.g., grade school, high school,lower level college (e.g., division II or junior college), higher levelcollege, professional, and elite or all star. Sampled data for aparticular athlete can then be compared to aggregated data, collectedusing the same motion sensing technologies and while performing the samedrills in the same fashion, from other athletes that were known to beperforming at each of these levels, and a level of performance for theparticular athlete may thus be determined.

The drills can be predetermined and matched between and among testsubjects so that the resulting data can be matched and compared asbetween individuals in a statistically significant manner. Drills aredefined multi-step physical processes that an athlete performs, such asdribbling in a particular pattern, shooting a certain number of shotsfrom a defined point on a court, and running through a pattern, such asthrough cones or on a line that can be applied to a floor.

As a result, such techniques can provide an indication to an athlete orto recruiting personnel regarding the objective skill level at which theathlete is performing, either for a particular skill set, or overall foran entire sport. In addition, the results may provide constructivefeedback by suggesting exercises that the athlete can undertake toimprove any deficiencies that the system recognized when comparing theathlete's data to that of other athletes.

While some exercises may simulate actual game-type athletic actions,such as shooting a ball or puck, other exercises may test more generalathletic abilities, such as strength, stamina, and quickness. Forexample, in one test, an athlete may be asked to lay on his or her backand throw a weighted bal repeatedly into the air. The explosiveness ofthe throw can indicate strength that is relevant, for example, fortwo-handed basketball passes or blocking by an offensive lineman. Thelevel at which he athlete maintains that level of explosiveness (e.g.,as measure by motions sensors such as accelerometers in the ball) mayprovide an indication of the athlete's stamina for such activity. Inanother exercise, an athlete may be asked to jump vertically a number oftimes. Again, a motion sensor may be embedded in a ball and the athletemay hold the ball as he or she jumps so that the explosiveness andstamina of the athlete may be measures. Alternatively, or in addition,sensors may be attached to the athlete, such as in a vest that theathlete wears during an exercise. In a third exercise, an athlete may beasked to perform sit-ups with side twists, and motion sensors in a ballheld by the athlete, on the athlete's upper body, and/or pressuresensors on the floor below the athlete may be used to measured theathlete's core strength. Finally, an athlete may be challenged to chestpass a heavy ball from one pylon to another while chasing after theball. Helpers may place the ball on the next pylon in front of theathlete. Again, the ball may include motion sensors. Such a test mayhelp identify passing strength and running quickness for an athlete.

In certain implementations, such systems and techniques may provide oneor more advantages. For example, athletes can be analyzed quickly bycompleting a number of drills through which the movement of the ball orballs are instantly recorded and easily transferred to a computingsystem. Also, the systems can record facets of an athlete's performancethat would not be observable by a coach watching the athlete,particularly for fast-moving sports that require a combination ofathleticism, muscle memory, vision, and the like to succeed. Inaddition, the analysis provided by the techniques provided herein can beconsistent and unbiased so as to provide high quality, objectiveanalysis in a highly scalable system without the need for personaltraining for numerous observers. For example, motion sensing testingsystems can be deployed nationally for operation by technicians who haveonly limited amounts of training. The analysis, like the datacollection, can be unbiased and scalable, so that it can give an athletea fair evaluation without concern that assertions of favoritism will bemade, and can be completed without needing to train numerous analysts asa system grows.

The details of one or more embodiments are set forth in the accompanyingdrawings and the description below. Other features and advantages willbe apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1A is a conceptual diagram of a system for electronically measuringathletic performance and providing feedback on the performance.

FIG. 1B shows a system for interfacing sensored sports balls to a homeconsumer electronics system.

FIG. 2A is a block diagram of an illustrative computer system forcomparing performance indicators for an athlete to aggregatedperformance indicators for a plurality of other athletes.

FIG. 2B is a block diagram of a computer-based system for evaluatingathletic performance.

FIGS. 3A and 3B are flow charts of example processes for obtainingmotion data relating to an athlete's performance.

FIG. 3C is a flow chart for identifying particular events during a drillthat involves bouncing a ball.

FIGS. 4A-4B show sample motion data from basketball shots taken after apass.

FIGS. 5A and 5B show parameters that can define a basketball shot.

FIG. 6 shows example gyro and accelerometer data for a basketball shot.

FIG. 7 shows example data from a ball being tossed upward from the chestof a lying subject.

FIG. 8 shows example motion data from a jumping subject.

FIG. 9 shows example motion data from a subject performing sit ups withside taps.

FIG. 10 shows schematically a set up for a throwing and running drill.

FIG. 11 shows motion data for a repetitive throwing and running drill.

FIG. 12 shows a comparison between a process for making annon-instrumented basketball (or similar type of sporting ball) and aninstrumented basketball.

13A-13K are graphs that show how raw motion data may be reduced andfiltered into a form suitable for analysis of particular basketballmotion, such as dribbling.

FIG. 14 shows an example of a computer device and a mobile computerdevice that can be used to implement the techniques described here.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

This document describes systems and techniques for capturing andevaluating athletic performance in a repeatable and objective manner bymeasuring athletes who have been instructed to perform certain drillsthat match drills that other athletes have also performed. In general, asporting device such as a basketball or other ball can be provided with,or be observed by, motion sensors, such as accelerometers and angularrate gyros, to record data about the manner in which an athletemanipulates the sporting device. Additional data may be captured fromthe athlete, such as via laser-based motion recorders, pressuresensitive pads, and shoe-based sensors. The athlete may be directedthrough one or more drills, such as a dribbling or shooting drill, andhis or her actions may be recorded through the various sensors as theycomplete the drill. The drill may be well defined so that the data thatis captured may be compared to other instances of the drill, includinginstances in which the same athlete performed the drill at differentperiods of time, and instances in which other athletes performed thedrill.

The motion data may be captured on a computer system in proximity to thelocation where the athlete performed the drill. The capturing of thedata may occur, for example, via wireless communication between a sensorassembly inside the sporting device and a wireless transceiver attachedto a computer, such as via a USB port or similar interface. The motiondata may then be transformed, sampled, and converted in various mannersand may be compared to data from other athletes that has been aggregatedfor later statistical or similar analysis. The other athletes may haveprovided indications about their level of athletic performance, such aswhether they are varsity high school players, junior college players,division I players, professional players, or other levels of player. Ifthose other athletes performed the same or similar drills undercontrolled conditions (by being instructed by, and observed by, atechnician to ensure that they follow the appropriate steps of a drill),their aggregated data can be compared to the data for the first athleteto determine where, on a continuum of skill levels like that justdescribed, the athlete falls.

Such an analysis may be simple, such as by being based on a singledrill, or it may be complex and involve a large number of drills thattest a variety of skill sets for an athlete. The simple testing may beconducted as an initial test to see if an athlete is interested infurther testing. For example, testing may be provided at a public eventlike an AAU tournament or a 3-on-3 basketball tournament. More complextesting may also, or alternatively, be conducted. For example, athletesmay attend more extensive testing at fixed athletic facilities, such asfacilities that are relatively common in major metro areas. Theadditional testing may test a variety of drills that include tests forball handling, jumping, shooting, and other similar skills.

The analysis may involve identifying individual sub-events within adrill, such as individual instances of a basketball bouncing off thefloor and entering/exiting an athlete's hand. Such sub-event may beidentified by running a time-wise window across the motion datarecovered from a drill, and looking for sudden accelerations or otherchanges that may represent palming or bouncing. The analysis may alsoinvolve isolating instances in which the athlete has lost control of theball, such as by identifying the absence of an adequate acceleration ina particular time window (thus indicating that the athlete let the ballbounce multiple times without dribbling it and/or was required todribble the ball at a low height and high frequency to regain controlover it).

The test results may be generated at a central facility that is remotefrom the various test centers. Such an arrangement may permit easydeployment of the system, with sensor-fitted balls and wirelesstransceivers being the only hardware that needs to be sent to remotesites in many implementations. Client computers such as laptop computersmay be provided by a technician, and may communicate with a remoteserver over the internet, including through a web browser that can havea downloaded plug-in for controlling communication with the sportingdevice and for uploading the gathered information to the server.

The server may in turn include a web server, and the client computer mayreceive information back from the server in the form of an XML and/orHTML document that can be shown or otherwise provided to the athlete,with a summary of the data that was reviewed for the athlete, and a listof instructions and exercises for the athlete in order for the athleteto address any weaknesses that were indicated by the testing.

Athletes may also be encouraged to conduct testing at multiple differenttime periods. Such testing may measure the relative progress that theathlete has made. Such relative progress may also be compared toaggregated data on the progress of other athletes. The evidence ofprogress for the particular athlete may be fit in a number of knownmathematical and statistical manners so as to produce a prediction ofthe athlete's near term and longer term expected progress if the athletecontinues at a pace of development that matches the development measurefor other athletes of similar progression.

Referring now more particularly to the figures, FIG. 1 is a conceptualdiagram of a system 100 for electronically measuring athleticperformance and providing feedback on the performance. The system 100generally includes a sub-system that is local to one or more athleteswho are being tested, and a sub-system that is remote from the athletesand includes one or more servers. Although a separated system is shownhere, all of the processing for the system may also be localized at asingle location.

A separated system may provide a number of advantages, however. Forexample, it may eliminate the need to deploy and maintain computers andsoftware in the field. Rather, only limited technology, such as one ormore sporting devices (e.g., balls, shoes, clubs, etc.) need be sentout, and software may be downloaded to computers (such as laptopcomputers) that are already in the field, such as via a web browserplug-in that manages communications with the sporting device and uploadsdevice data. As a result, a company operating the system may reduce itscapital costs significantly by using computers that are already owned byfield personnel and are being used for other purposes. In addition, thecompany can better control who is using its technology, by maintainingownership, for example, of the sporting devices, so that a fieldrepresentative must return the device when their term of representationis over. Also, when field deployment of software occurs via downloadover the internet, a company can push out the programs more easily, andmay also keep them updated regularly with little effort. Moreover, sucha separated system permits the company to maintain better control overits analysis code so that the code is not easily taken and provided to acompetitor, and so that it can be updated and kept fresh in a verycontrollable manner.

A hybrid approach to splitting the duties of the in-field sub-system anda central sub-system can also be pursued. For example, a client devicesuch as a laptop computer may be provided with code and data that issufficient to test an athlete in one entry-level drill, such asdribbling a figure eight. Such distribution of basic testing code maypermit the testing to occur more quickly and reliably than if around-trip to a central server were required. Such reliability can beimportant for entry-level testing also, because frequently such testingwould occur at various festivals and tournaments that are far fromdedicated IT equipment.

In the hybrid system, the server system could be used for subsequent andmore extensive testing, after athletes have been introduced to thesystem and have decided they would like to receive additional testingand guidance. In this manner, the system 100 can be introducedconveniently to athletes and they can be given an inexpensive trial ofthe system's capabilities with the entry-level drill. Although securitymay be compromised for testing of the one drill (because the analysiscode will have been sent to remote client devices), a competitor couldnot make much from the one drill in any event, so the risk to securityis minimized.

In FIG. 1, the local computer sub-system is made up of a laptop computer108, a wireless transceiver 110, and a printer 112. The computer 108 maytake other forms and may be loaded with software to cause an athlete'sdata (from the measured motion of a sporting device that the athletemanipulated and/otr other sources) to be analyzed, and may cause reportsto be provided to the athlete. The computer 108 may be loaded withnative applications to receive such input and produce such reports, andto also analyze the input data with respect to similar data from otherathletes. Alternatively, the computer 108 may be loaded with basicworkplace applications, such as a web browser, and the system 100 mayprovide a downloadable plug-in for the browser that will controlcommunications with the transceiver 110 and with a server.

The transceiver 110 may take a variety of forms, and may be directed tocapturing motion data from a sporting device in the form of a basketball104 in this example. The basketball 104 may be of a common size andshape, and may contain a sensor assembly that includes accelerometersand angular rate gyros mounted inside it, in a way that does notinterfere substantially with the handling of the ball, to capture motionof the ball 104 in a manner that is usable to the system 100. Thetransceiver 110 may in turn communicate with the computer 108 in afamiliar manner, such as through a USB port or the like, so as to makerelatively simple the use of the computer 108 with the system 100 tocapture motion data.

The printer 112 is shown as an example of one way in which a report onan athlete's performance can be presented to the athlete. For example,certain numerical figures or graphs may be generated to visually showwhere the athlete scores on a continuum of skill levels. In addition,recommendations may be generated in a textual format to be given to theathlete, with particular instructions on how the athlete can improvetheir performance, including suggested exercises or drills to perform inorder to improve the athlete's muscle memory for a particular task. Forexample, if the testing of an athlete indicates that the athlete doesnot release the ball during a dribble with adequate velocity, the system100 can recommend drills and conditioning routines to address such asituation.

In addition to being provided on paper from printer 112, information maybe provided to an athlete regarding his or her performance via othermechanisms. For example, data for an athlete may be copied to a thumbflash drive or other similar mechanism. The athlete may then return to anext testing session and provide the memory mechanism for use incomparing the athlete's skills at an earlier time to their currentskills, and extending out any recognized trends to give the athlete orsomeone reviewing the athlete an opportunity to see if the athlete issimilar in skills to other athletes who have excelled over time, or havestalled and fallen behind comparable athletes.

The data for an athlete may also be stored in the system 100, and theathlete may provide identification information in subsequent visits sothat prior test data for the athlete is joined with subsequent testdata. Access to data may be provided to the athlete via a message sentto the athlete (e.g., via text message or e-mail) or by providing theathlete with log in credentials to a central site. A combination of suchmethods for provided the athlete with access to the data may also beemployed. In addition, reporting tools may be provided under any of theexamples above, so that the athlete may return home and produce customreports and otherwise manipulate the data on their performance.

An athlete 102 is shown in FIG. 1 dribbling the basketball 104. Forexample, the athlete may be instructed to dribble the ball in afigure-eight pattern several times, or for a fixed number of times so asto record a statistically relevant sample of items to record andanalyze, while motion data is being captured by sensors in thebasketball 104 and perhaps via other sensors. The athlete is also shownas performing on a pad 106. The pad 106 may be pressure sensitive andmay provide additional data that may be coordinated with the motion datafrom the sporting device 104. For example, the relative timing betweenup and down motion of a ball and contact timing of a basketball player'sfeet may indicate certain room for improvement in the athlete's skillset.

In addition, other sensors may be employed along with the sensors in thesporting device, such as laser location finders that may indicate therelative positions of points on the athlete's 102 body, or motion dataof the basketball 104 that cannot be fully captured by sensors insidethe ball. Certain sensors may also identify information relating to theactual time that a drill starts and stops, or how quickly an athletemoved from point A to point B while simultaneously controlling theathletic device, how consistently the athlete handles the ball, thevariability between dribbles, etc. Also, sensors may be used todetermine athleticism, such as in vertical jump tests, both to measurethe height of the athlete off the ground and to measure the accelerationof the athlete off the floor.

The sensors may generate a variety of data types. The sensors canmeasure athletic stride, number of impacts, change of direction, etc,while sensors in a ball would capture the muscle memory skillsassociated with handling the ball while moving in very quick and shortbursts. Also, the timing of data for various sensors may be aligned andsynchronized so as to deliver more information on the athlete'sperformance. For example, laser-based sensors, when combined within-ball sensors, may provide an indication when a player loses a dribbleduring a drill, even in situations where either sensor group alone wouldnot make the same determination.

Sensor-equipped specialized athletic devices that differ from thecorresponding devices that are used in competition may also be used fortesting athletes. For example, sensors may be provided in a weightedball, and an athlete may be directed to execute drills that can deliverpredictive or diagnostic data on a player's core strength. For example,the heavy ball can be thrown, and the sensors can capture acceleration,distance, and speed. As another example, an athlete can perform a seriesof repetitive drills with the torso, such as situps. The sensors canmeasure force, acceleration or other movements, the average and medianof these measurements, and any degradation of these elements over thecourse of the entire drill. These measurements can be used to benchmark,compare, and predict core athletic strength that is critical in manysports.

Certain of the information may be compared to aggregated data for otherathletes, while certain data may be provided in a form that does notinvolve such comparison. For example, drill data for particular skillsmay be compared to drill data for other athletes, while core strengthmeasurements may simply be provided in raw form or in some revised form(e.g., on a scale of 1 to 10) but without the need to place such numbersinto some preexisting skill level relative to other athletes. In thismanner, various sorts of data may be made available for review by anathlete or by others from a single location—whether the particular datais best presented in comparison or as an absolute.

The local client sub-system may be connected to the server sub-systemthrough a wireless connection, such as an aircard or similar structureor a WiFi card and WiFi hot spot. A network 114, such as a cellular datacarrier network 114 may transfer the data and communicate through anetwork 116 such as the internet, to the server sub-system shown here asa single server 118, but which could include a large number of serversto receive various types of requests. The server 118, as described inmore detail below, will have previously been provided with datareflecting skills for a number of other athletes who already ran therelevant drill or drills. The previously processed data will alsoindicate the skill level of several of the athletes.

The server 118 can thus compare the data representing the performance ofone athlete acquired by the client sub-system, to the information thatis aggregated for performances of a group of other athletes whoserelative levels of development are generally known. The server may thenreturn to the computer 108, through the networks 114 and 116,information that can reflect such a determination and provide additionalhelpful data and advice to the athlete. For example, the computer 108may be used to print out a number of pages of mark-up language material(e.g., HTML) that include data and graphs to show the athlete what wasmeasured from them, and what comparable values have been observed forplayers from various levels of a sport. In addition, variousinstructions can be provided in a similar manner, which the athlete cantake home with them and read to improve a particular skill set or drill.Such data and reports may be provided via printer 112, or via anelectronic file such as an HTML or PDF file stored to removable portablemedia that is given to or provided by the athlete. For example, asponsor at an athletic event may supply free flash memory containing thesponsor's name, and the data for an athlete may be stored onto the flashmemory by attaching the flash memory in a well-known manner (e.g.,through a USB port).

An athlete can also capture data to be used in customizing a videogameexperience. The athlete can first perform a variety of drills to obtainstatistics indicative of their overall current skill levels in a sport.They may then have the figures loaded to portable memory devices thatcan be used with videogame systems, whether console or PC. Such athletesmay then load the data to a game that involves athletic performance thatuses the skills tested by the athlete, and their character or avatar inthe game may perform according to their actual real-world skill level,with multiple different variables being identified to define the fullperformance palette for the athlete. In this manner, friends may set uphead-to-head battles in sporting games, where their own personal skilllevels affect how the simulated videogame contest will turn out. Theathletes may also thus be motivated to return for additional testingafter they have practiced so that they can have better baseline skillnumbers that will improve their performance vis-a-vis other players inthe game.

FIG. 1B shows a system 120 for interfacing sensored sports balls 124 toa home consumer electronics system 122. In general, the system 120 maybe used to permit a consumer to practice with the sports ball, such asin their driveway, and then immediately enter their home and have dataregarding their skills uploaded to their personal computer, consolegaming system, or mobile computing device (e.g., smart phone or appphone).

In the figure, two athletes each hold one of the balls 124, which inthis example are basketballs. Each of the athletes may have justfinished completing a series of drills, such as performing dribbles in aFIG. 8 through the legs, performing dribbles around the body in acircle, dribble while running through certain forms, and the like. Eachathlete may perform one drill at a time, or may use materials such as aguidebook to perform drills or exercises in order, and the balls 124 maystore motion data, such as in the manners discussed above and below, foreach such drill. Separators may be provided between sets of data foreach drill so that distinctions between each drill may be determinedduring later data analysis.

As shown in the figure, electronic assemblies inside each of the ballsare communicating data wirelessly either with a smartphone 134 or awireless router or switch 132. Such communication may occur in familiarmanners, such as by using standard BLUETOOTH or WiFi protocols andmechanisms at each of the devices. The balls can announce themselvesafter a set period of inactivity has expired after drills have beenperformed, may perform a handshaking process, and may begin uploadingwhatever information they have obtained from the motion of the balls 124during the drills. The smartphone 134, a personal computer 126 (e.g., alaptop, netbook, or desktop computer), or a videogame console 128 (e.g.,a MICROSOFT XBOX, NINTENDO WII, or SONY PS/3) connected to a videodisplay 130 (e.g., a high definition television) may be the destinationof the data and may include software for storing the information aboutthe motion of the balls 124 and further transmitting such information(perhaps after some level of reformatting) or analyzing the information.

The consumer electronics system 122 may include each of the consumerelectronics devices discussed here (e.g., console gaming system 128,smartphone 134, or personal computer 126), which may in turn communicateover a local area network 138, which may be partly wired (e.g., IEEE802.3x) and partly wireless (e.g., IEEE 802.11x).

One or more of the devices may also communicate through a largernetwork, including the internet 130 with a server system 132. Such aserver system 132 may provide functionality like that discussed aboveand below for analyzing an athlete's performance data, including bycomparing it to performance data for other athletes. Such informationmay be processed, and the results may be downloaded back to one of theconsumer electronics devices, including through wireless network 136.

In operation of the system 120, the two athletes may each have a ball124 or may take turns with a ball, and may, for example, go outside in adriveway while performing a number of drills that may be outlined on apaper card one of them received with a videogame (where theinstrumented, or sensored, ball may have been integrally packaged withthe game disk, cartridge, or download code). They may each perform therequisite drills with the ball or balls 124, and then upload data thatrepresents motion data for their drills to one of the consumerelectronics devices 126, 128, 134.

In one example, such data may be further uploaded to the server system132, which may analyze the data and provide information to each of theathletes that explains to them, such as graphically or in tabular form,how they compare to each other and to other athletes in terms ofbasketball skills that are reflected by the drills they performed. Otheruses of the information may also be made, such as described above andbelow.

Alternatively, or in addition, the data from the balls 124 or dataproduced from such ball data and that reflects information about theathletes' performance in the drills, may be provided to one or more ofthe consumer devices 126, 128, 134. Such devices may be loaded with asports videogame that permits competition against a computerizedopponent by an avatar controlled by the player, or head-to-headcompetition between two players. The data may thus be used to affect theathletic performance of each players/athlete's avatar. For example, ifthe data from the drills indicates that the first athlete dribblesstrong with the right hand, the athlete's avatar in the video game willtend to go stronger to the right. Such provision of the athlete'sability to the avatar may be absolute or relative, or a mix of the two.For example, if the test data shows that the athlete's skills arehorrible, their avatar may also be horrible in a videogame.Alternatively, the general skill level of the athlete may be raised tosome even norm with that of the other players, and the relativestrengths of the player may be emphasized. For example, perhaps theathlete was horrible going right and even worse going left. In such asituation, their avatar might play as going strong to the right andnormal to the left, with an average ability that matches that of thesecond athlete so that the videogame is evenly matched. Nonetheless,absolute skill levels have benefits in that they encourage athletes toimprove their overall skill level and to get better at playing the gamein real life, in the process.

FIG. 2A is a block diagram of an illustrative computer system 200 forcomparing performance indicators for an athlete to aggregatedperformance indicators for a plurality of other athletes. In general,the system 200 s similar in arrangement to system 100 in FIG. 1, butmore detail is shown here about a server system 202 that may be used toprovide evaluation data for athletic performance.

Starting at the client side and then moving to the server system 202,there is shown a sporting device in the form of a basketball 228, whichmay communicate motion data that is measured by sensors inside thebasketball 228 with a wireless transceiver 226. The wireless transceiver226 may in turn provide the motion data to a computer 222 that may passthe information to a network 220 such as the internet and/or a wirelessnetwork like a WiFi network or cellular data network, and on to theserver system 202. The computer 222 is also provided with one or moreoutput devices in the form of a printer 224 and computer monitor, andmay also have ports for writing to portable memory devices carried byathletes who are tested by the system 200. The client-side system inthis example can be operated in a manner similar to the system 100described in FIG. 1.

On the server side (which again, may include one or a number of servercomputers, including web servers, database servers, and othercomputers), the server system 202 includes a number of components toassist in processing data regarding athletes' performance in a number ofdrills. (which may be among a number of additional components that areomitted here for clarity)

First, a number of data stores 212-218 hold data that is relevant to theathletic evaluation functions. For example, a classified data store 212includes information from past athletes whose performance data has beengenerated and who are classified into certain skill levels. The data maybe aggregated from across a large number of athletes so as to make thedata meaningful. Also, each set of data may be correlated to aparticular drill or exercise performed by the athlete, so that the datacan be properly compared to data for other athletes that performed amatching drill or exercise. (A matching drill is a drill that is thesame as a first drill or that includes some substantial superset orsubset of the first drill.)

Classification rules dataset 214 may store data representing rules thatare derived from analyzing the classified data, and may includeheuristic rules or other rules to apply to incoming data to determine anappropriate skill level of an athlete who generated the data. Forexample, a set of rules may be combined to determine a skill level of afree throw shooter, such as the number of times a free throw rotates andthe hang time and entry angle of a free throw.

Client data store 216 may store two or more types of data. For example,it may store information about the particular client computer 222 thatis sending testing data to the server system 202, such that an accountassociated with the computer 222 or with a login made through thecomputer 222 can be debited. Such debiting may occur where an operatorof the client system collects money for providing the testing services,and some of the money is to then be provided to the organization runningthe server system. In such a manner, the central system may best be ableto audit the operations of field personnel and to track accountingfunctions properly (because it will know the number of transactions).The client data may also relate to athletes that have used the system200. Such client data may include raw motion data that has previouslybeen uploaded in combination with an ID for the particular athlete, inaddition to a history that summarizes tests and drills the athlete hascompleted, and reports and recommendations that have previously beenprovided to the athlete. Storing such data may permit the system 200 toprovide ongoing support to an athlete as they develop, including byproviding reports that show past progress of the athlete at certaintasks, and projections for the athletes' development with respect tothose tasks.

A reports data store 218 stores formats for various reports that may beprovided to athletes or advisers to athletes. The reports may take avariety of forms, such as tabular data comparing an athlete to otherathletes or groups of athletes, graphs making similar comparisons, andtextual reports providing recommendations for drills and exercises thatan athlete may undertake to improve his or her performance. In addition,the reports can include tracking modules that can be downloaded to aportable media owned by the athlete, where the athlete may trackdevelopmental milestones using the modules. For example, an athlete canenter the completion of certain exercises and the results of exercisesthat the athlete has completed, and the module may communicate with thesystem 200, either immediately (e.g., to schedule follow up testing whenthe athlete's results indicate that they may be ready to enter a newlevel of development) or the next time the athlete comes in for testing.Tracking actual activity of the athlete may improve the advice given tothe athlete. For example, if the data indicates that the athlete hasworked very hard on a particular skill set or muscle group, but is notshowing development at a sufficient level, the routine for the athletemay be changed by identifying the athlete as sharing characteristicswith a different group of athletes who previously responded poorly toone routine, but responded better to a different routine.

Other components shown in the figure provide particular functionalityfor the server 202. For example, a data collection interface 204 mayobtain uploaded data about athletic performance form the computer 222.Such an interface may take a variety of forms, including as a web serverthat serves forms that a technician may fill out for each athlete (e.g.,to include identification information and information about the drill ordrills performed by the athlete), and that include selectable controlsthat cause data from the basketball 228 to be gathered and then uploadedto server system 202.

The data collection interface 204 may also screen uploaded data toensure that it matches an appropriate profile for any particular drillthat the data supposedly represents. For example, the interface may testto ensure that the data represents a long enough time period, anappropriate number of dribbles, appropriate motion data for the drill(e.g., there should be some bouncing for a dribbling drill), and mayprovide an alert back to a technician (e.g., to repeat the testing) ifthe data does not appear to be proper data.

In addition, the data collection interface 204 may reformat the data invarious manners, such as those described below with respect to FIGS.3A-3C. For example, the interface 204 may identify individual sub-partsof a drill such as individual dribbles in a basketball drill. Theinterface 204 may then convert raw motion data into other forms, such asparameters having particular values that represent a user's performance.The parameters may include figures that reflect average times for a ballto stay in a user's hand, average time between dribbles (and variationin the same), and other such parameters. Other components may also takeon the role of initially processing incoming raw motion data in order tomake it easier to process and to compare between one athlete andanother.

A classification generator 206 develops rules for placing athletes intoparticular rankings or classifications relative to other athletes ofknown classification. The rules are selected so as to providestatistically predictive indicators of real athletic performance thatcan be derived from motion data and other data compiled from athleticdrills. The classification generator 206 may, for example, receivemotion data from a large plurality of athletes who have been classifiedas falling into particular skill levels. The classification generator206 may analyze the data in various known mathematical manners toidentify correlations between data points for athletes of a particularskill level or similar skill levels. For example, the classificationgenerator 206 may recognize that athletes of a particular skill levelfrequently dribble a basketball according to a particular time pattern,or that the ball spends a certain amount of time cradled in their handsduring a dribbling exercise. Where the athletes provided their data in acontrolled manner by conducted a predefined and repeatable drill, suchcorrelations can be determined to have significance, and can then bemade into classification rules by the classification generator 206.

The rules for classification may also be generated with manual input.For example, an operator of a system may determine particular aspects ofperformance that have been correlated with an athlete's skill level.They may then test a number of athletes at known skill levels toidentify values for that aspect of performance at each skill level (andto confirm that there is a correlation between the values of the aspectand skill level), and may store the measured figures for that aspect ofperformance.

A classifier 208 in the system 200 uses such rules, in whatever formthey may be provided, to classify future athletes according to thestrengths, abilities, and weaknesses. The classification may occuraccording to heuristics, by a degree-of-match determination acrossmultiple factors to corresponding data for athletes of known skilllevel, or by other acceptable mechanisms. Such classification may occurby obtaining data relating to measured motion data for a new athlete inpredefined drills that correspond to the drills performed by the priorathletes of known skill level.

The classifier 208 may also include a trend analyzer that may correlatean athlete's data at different points in time, to the performance dataof other athletes at different points in time. Thus, the other athletesmay have been tested over time, and may be provided with identificationnumbers so that the different testing can be matched (though theidentities of the athletes themselves may be anonymized). Varioustrending techniques may be performed to find prior athletes who trendedin particular manners for one skill or a predefined group of skills thathas been determined to develop in parallel. The new athlete may alsoprovide information about their skill level, which information may befed back into the system 200, where the new athlete will joint the ranksof the preexisting athletes of known skill level. Classification andcomparison may thus be completed again to strengthen the system's rulesas time moves on and additional athletes are added to the system.

A report generator 210 may take raw data from the classifier and mergeit with format data from the reports data store 218. Variouspre-existing report formats may be used, and each athlete may beprovided with a variety of reports, where the number and detail of thereporting may depend on a level of service purchased by the athlete. Forexample, basic data from a number of athletes for a particular skill maybe pulled from the client data store 216 (along with indicators of theskill level of the athletes), and corresponding data for the currentathlete may be placed in line with that other data. The current athletemay thus readily see how he or she stacks up relative to others in skilllevel, and with respect to the particular drill. For example, an highschool athlete may perform at a division II college level for a certaindrill and may readily see how they fit with other division II players inthat regard, though they may match to junior varsity players withrespect to another drill or skill set. Such feedback can be very helpfulis letting the athlete determine where they should focus their training.

An athlete can also identify a group with which they would like to becompared. For example, a high school athlete may wish to be compared toall other athletes who have tested on the system in their region orsection. Or they may wish to be compared to other athletes on theirteam. Such identifications of athletes as belonging to certaingeographical groups may be used in addition to identifying them asbelonging to certain developmental groups.

Also, an athlete can provide information to third parties to permitaccess to part or all of their testing data. For example, an athlete whois testing at a division II level on certain skills may provide accessto a recruiting coach at a division I school to show the coach how theathlete has made great strides in those areas, and thus will be at adivision I level by the time they start playing college sports.

Thus, by using system 200, various athletes can obtain both quick andminimal feedback, and longer and more in-depth feedback, on theirathletic performance in a convenient manner. The system 200 may provideobjective reviews for certain aspects of athletic performance that maythen serve as a baseline for more subjective review of the athlete(e.g., where tests do not reflect heart or leadership ability).

FIG. 2B is a block diagram of a computer-based system for evaluatingathletic performance. The system in this example is similar to thatshown in FIGS. 1 and 2A, but is focused more on the organization of anoperational system rather than on the technical provision of data toathletes. The system is focused around a skill database. The skilldatabase stores data of various kinds that reflects performance of alarge number of athletes of different skill levels for a number ofconsistently-applied drill and other activities. The data may reflect,for example, motion data collected from sensors in an athletic devicethat is separate form an athlete, such as a soccer ball or basketball,and sensors attached to the athlete, such as on a vest or in a shoe orshoes. Certain of the athletes represented in the skills database mayhave their relative skill level associated with each round of testing,such as according to gross levels (e.g., grade school, high school,college, professional, etc.) or at a more detailed level (e.g., rankedat many levels, and perhaps having different ranks for different drillsor skill sets). Other of the athletes may not have an assigned skilllevel, but may instead be looking to have the system tell them wherethey stand with respect to the skill levels of other typical users.

Testing and reporting for athletes is shown to the left of the skilldatabase. In this example, two types of operators are identified ashaving access to the skill database for providing athletes withevaluation data. First, independent test centers may provide testing andevaluation to members of the general public. They may have clientsystems like those discussed above, to collect the data from athletessuch as youth athletes at camps, performance improvement centers, andthe like, and may deliver reports and recommendations to the athletes.They may also collect payments from the athletes and remit portions ofthe payments to an operator of the skill database.

The second type of operator is the national accounts operator. Suchoperators may provide premium testing services and may be more closelytied to and regulated by the operator of the skill database. Suchoperators may visit important accounts such as college sports teams, andmay conduct mass testing of athletes for such teams. Again, they mayprovide the raw data for the testing to the operator of the skilldatabase, and may receive report and recommendation data in return. Insuch situations, the reports may be more detailed, and may also includegrouped reporting functionality. In particular, if a team is tested andthe testing indicates a pronounced occurrence of a certain weakness inmembers of the team, the coaching staff or conditioning staff may adddrills or exercises to address the weakness on a more global scale,rather than simply for a particular athlete.

The skills database may also be accessed, sometimes for a price, byother organizations that do not collect data on athletes, as shown tothe right of the figure. First, recruiters may access data in the skilldatabase to help them make decisions about recruitment. Each athlete mayidentify, to the system, the schools to which they are applying, andeach of the recruiters for such schools may register with the system ina manner that identifies them as being related to their school, and thusgives them access to data for athletes that have identified themselvesas being interested in the school. The recruiters may be provided withtools that allow them to see testing scores for various athletesside-by-side, so that they can better compare their prospects.

Athletes may also include ancillary data for such a system, to bereviewed by recruiters. For example, each athlete may be provided with apreformatted home page where they can post information about theiracademic success (e.g., their grades and volunteer work) and videohighlights of their play (or links to video sites that house thehighlights). Links may be provided to such pages so that recruiters mayobtain a more complete picture of a recruit. In this manner, the systemcan serve as a national clearinghouse for athletes interested incollegiate opportunities.

As shown in the figure, advertisers or other third parties may beinterested in accessing the system. Advertisers, for example, may wishto promote products, such as sports drinks, to user who access thesystem. In addition, advertisers may wish to identify athletes thatidentify themselves as using the advertisers' products so as toestablish a connection between exceptional performance and the products.In addition, advertisers may wish to review anonymized athleticperformance information to determine where in the country certain usersare most interested in such testing, so that the advertisers may targettheir budgets to such areas.

FIGS. 3A and 3B are flow charts of example processes for obtainingmotion data relating to an athlete's performance. In general, theprocess involves identifying particular repeated events in a drill, suchas floor contacts by a bouncing ball, and attempting to fit a profile tosuch events so as to properly characterize an athlete's performance sothat it can be compared with characterized performance data for otherathletes who performed the same drill.

The process begins at box 302, where floor impacts for a ball areidentified in motion data for a drill by an athlete. The impacts can beidentified, for example, by identifying sudden changes in anacceleration profile for one or more accelerometers that measuredtranslation of the ball during a drill. At box 304, a dribble profile isfit to the data provided by sensors between impacts with the floor. Suchdata may show that the user dribbled at a particular frequency, and canalso show the manner in which the user received the ball in his or herhand and ejected it from his or her hand. For example, the user may havehad a relatively short stroke as part of the dribble, or may havereceived the ball slowly but pushed it back down to the floor swiftly.Three sub-parts of the dribble cycle can be identified and analyzed inthis example: (1) the free flight of the ball between the time itchanges direction on the floor to the time it hits the user's hand; (2)the time at which the user's hand contacts the ball; and (3) the time atwhich the ball exits the hand. Other sub-events in the dribbling cyclemay also be the focus of the analysis for athletic traits that aredetermined to be affected by such sub-events.

At box 306, outlier dribbles are eliminated from the data. For example,a ball may get away from an athlete, so that the athlete misses a cycleof the dribble. Or the athlete might otherwise miss a dribble so thatthe ball bounces much lower, and the athlete may need to “pound” on theball to recover the prior dribbling height. Such episodes are removedfrom the data because they do not represent that athlete's actualregular form.

FIG. 3B shows a process by which various information is filtered out ofraw motion data form an athletic device, such as a bouncing basketball,and various parameters that define the motion are discerned. Suchparameters or other forms of data may be formatted to permit subsequentcomparison between the performance of a first athlete at the drill, andthe performance of other athletes at the same drill, so that a relativeskill level of the first athlete can be determined.

The process begins at box 322, where motion data is searched todetermine a dribble speed or frequency for an athlete's performance of adrill. This action may be used to quickly estimate the dribble speed fora trial. The action may operate on the raw acceleration magnitude signalfrom a ball, where floor impacts are selected as any accelerationsignals above 18.5 g's. Since multiple points above 18.5 g's are likelyfor each floor impact, a refinement of the original set is made bylooking for points that are at least 50 data points apart (0.050seconds, at the sampling rate used in the example here). The mean andstandard deviation of the distance between remaining indexes (time tocomplete a dribble) are then calculated, and differences beyond 1standard deviation are ignored, and the dribble speed is estimated asthe mean of the remaining indexes, in this particular example.

At box 324, acceleration magnitude data is filtered from the raw data.Such action may be used to reduce the noise in the signal so that thesignal can be analyzed and processed more readily. To perform suchfiltering, the acceleration and angular velocity signals from the motiondata are passed through an eighth order butterworth band pass filterwith pass band of 0.001 Hz and 15 Hz (where the upper limit could bemade to depend on dribble frequency). This filter is very similar to alow pass filter at 15 Hz.

Although the particular example here has been described as using bothspin data and translational data for a ball, determinations may also bemade regarding when an athlete loses or regains control by using onlyone type of data. For example, acceleration data may be used, withoutspin data, by determining the sequence of ball impacts and hand impacts.Floor impacts generate more force than a hand impact, and control of theobject is determined by a sequence that always includes an alternatingfloor-hand-floor-hand sequence. If the process cannot locate a handimpact between two floor impacts, it can indicate a loss of control ofthe ball. Thus, a predetermined minimum force measurement (which can bedetermined from acceleration data) can be defined for a hand impact, anda pre-determined minimum force measurement can be defined for a floorimpact. If the patterns reveal two floor impacts in succession, loss ofcontrol can be determined. If the patterns reveal a pre-determinednumber of floor-hand-floor-hand patterns, control has been regained. Inthis fashion, a determination of ball control and lack of control can bemade, and thus all other calculations about the ball's movement can becounted within the periods of the ball being in control.

FIGS. 13A-13K are graphs that show how raw motion data may be reducedand filtered into a form suitable for analysis of particular basketballmotion, such as dribbling. FIG. 13A shows two subsets of data taken froma single trial of a first athlete dribbling a basketball in a figureeight pattern, where the athlete is a Division II level collegebasketball player. The left graphs show the level of angular velocity,while the right graphs show the level of translational acceleration ofthe basketball. The upper graphs shows both the filtered and unfilteredsignals, while the lower graphs simply show the filtered signal. FIG.13B shows the same information, but zoomed into a particular part of thedata from FIG. 13A. Green dots have been superimposed over the signals(though they are most visible in the lower graphs), and they representpoints that the search in box 322 identified as being floor impacts. Onecan see that the noise of the signal has been reduced from the uppergraph to the lower graph by the filtering. Now for each dribble there isa single peak for floor impact and in most cases a smaller peakcorresponding to impact with the athlete's hand.

At box 316, the process uses the dribble frequency to define searchwindows to be passed over the signal to search for floor impacts. Thesearch windows are used to search through the smoothed accelerationsignal and identify the floor impacts. The process searches for a nextdribble based on the estimated dribble speed from box 322. At first, thecoarse estimated dribble speed is assigned to be an assumed absolutedribble speed, and an initial relative dribble speed. A threshold limitof a certain number of g forces is set for the search, which may betriggered by some hand impacts, but which is designed to catch all floorimpact peaks. The next peak search looks at a window that spans no morethan a certain time interval as determined by a calculation based partlyon the average dribble frequency of that drill for that player. Therelative dribble frequency is updated to be the dribble frequency of thelast 4 good bounces. Such adjustment addresses actions by an athletethat involve speeding up or slowing down, so that the most recentinformation is used.

The data in the time window can have three outcomes: (1) A local maximumis found above the minimum g force threshold (success in finding nextbounce); (2) no points above the minimum g force threshold are found;and (3) a point above a minimum defined g forces is found but it is onthe edge of the window.

If the search concludes with outcome (1), the point is registered as thelocation of the next bounce. If the search concludes with outcome (2)(no point above the minimum g force threshold's) the process searchesforward (by moving the timing window) looking for the next peak at orabove the minimum force threshold. When the outcome is (2), the processalso resets the counter of good bounces, which means that a new relativedribble speed will not be calculated until another 4 bounces areidentified in a row.

If the search concludes with outcome (3), the process searches backwardand forward for the next peaks, regardless of their magnitude. Theprocess then checks to see if either of the nearest peaks are aboveminimum defined g forces. If only one is above the minimum defined gforces then that one is selected as the next bounce. If both are abovethe minimum defined g forces, the one closer to the relative dribblefrequency is selected. Outcome (3) may produce a result in which awindow can register a point that is above the minimum defined g forces,but where that point is not at the apex of the signal, and thus does notrepresent a bounce peak.

FIG. 13C shows graphs of such a searching process, using data from thesame athlete that drilled for FIGS. 13A and 13B, and again on theathlete's figure eight data. The upper graphs show unfiltered data,while the lower graphs show only the filtered data. Dots aresuperimposed over the signal to identify points that have been locatedvia the process in box 316. The original dots from the coarse peakidentification (which are mostly located at points below the new dots)are also still shown. Notice in the figure that, between 5.5 and 7,there are three previous dots, as the hand contact was improperlyidentified as a floor impact, and only two new marked dots in this sameperiod.

FIG. 13D shows a failure mode for the action at box 316, where theprocess locks onto a dribble speed that is double the actual dribblespeed (which may occur when more than one type of dribble is beingperformed in a drill). As shown by the dots in the figure, every otherdribble has been missed.

As an additional action, the identified points may be further processedin an attempt to identify hand contacts that were erroneously classifiedas floor contacts. In one example, the process identifies floor impactsbelow 16 g's. It then considers the next three peaks. If the distancesfrom the middle peak to each of the previous and later peaks are lessthan a defined level of dribble speed, and if doing away with the middlepeak would be within a defined range % of the dribble speed, then theprocess removes the middle peak.

The results are shown in FIGS. 13E and 13F, for data from a drillperformed by a second athlete who is different than the first athlete.Notice that there is a significant time difference between the dots fromthe original coarse pass and the corresponding new dots. This is due toa time shift cause by filtering. Because it may be preferable to returncloser to the original signal, a search can be executed for each new dotbackward until a peak is found in the raw data. Upon completion of suchan operation, the process may assume that that only peaks associatedwith floor impacts have been tagged, and no floor impacts have beenmissed.

The process then proceeds to box 318, where a profile is fit to eachdribble. By this point, all the floor impact peaks (and only floorimpacts) have been marked. The process now attempts to fit an expectedprofile to the data between floor impacts. The first step is to filterthe data, such as by using a moving average filter The filter can use anadjustable number of points ‘X’ (which could be tied to dribble speed)and replaces the current point by the average of the ‘X’ previous pointsand ‘X’ following points. This has the effect of low pass filtering thedata with minimal phase shift. The process then moves to the center ofthe data window and searches the acceleration signal left and right fora peak above 3.5 g's. If no peaks are found, it lowers the threshold by0.5 g's until the peak threshold falls below 1.2, at which point theprocess eliminates the current window as a valid dribble.

If peaks are found (where two forward and two backward are the searchgoal), the width of each peak is calculated. The width is defined, inthis example approach, as the time distance when the peak has lost 120%of its max value (or has fallen below 1.3 g's). For a peak to beselected in this example, it needs to have a full width of at least 15data points, and each half width (distance from peak to right or leftedge) of 15/2. If multiple peaks meet these criteria, then the oneclosest to the midpoint of the dribble is selected. If no peaks meet thecriteria, then the current window is eliminated from the set of validdribbles.

Once a hand contact acceleration peak is identified, the processdetermines when the hand first touched the ball. As a starting point,the process searches back in time to find the nearest minimum point tothe hand contact peak. This minimum is marked as the dots on the signalgraphs in FIGS. 13G and 13H.

The process then analyzes the spin data from the sporting device motiondata. The spin data should normally be oscillating about a free flightspin rate. This free flight period will generally be a period ofconstant spin because no external torques are being applied to the ball(ignoring air drag), and therefore angular momentum should be conserved.The process then searches around the acceleration minimum (shown by thepoint identified in the prior paragraph) for an oscillatory signal.

To prevent unintended small oscillations from triggering the process,the process is only triggered in this example if the free flight spinrate is 150-350 deg/sec (a choice can be made depending on dribblefrequency) and if spin drop from free flight to the next spin minimum isat least 100 deg/s. Also, the spin rate needs to decay when the player'shand touches the ball, so a drop in spin rate should be observable inevery valid dribble.

A search for oscillation in the spin data is performed as follows, andis performed for each dribble. A search back from the dot identifiedabove is first made to find a peak that is at a minimum pre-definedthreshold, in this case 85% of the free flight spin rate. The search maybe conducted by finding the next local max, and, if that max is notlarge enough, the process moves back to the next local max. Thismovement backward may continue until a valid peak is found or the searchruns out of data (in which case, the last invalid max is preserved forthe next step).

A second search looks for a local spin maximum moving forward from thedot to the acceleration hand peak. Because the forward search willfrequently not find an actual max, and will thus return one of the endpoints, a check is made to determine if that point is truly a max bychecking the local slope of the line. The example in FIG. 13G shows sucha feature.

The appropriate maximum may be selected by first checking whether themaximum backwards value less the value at the dot discussed aboveis >100 (which checks the spin drop), and the maximum backwards spin isclose to the window (i.e., no more than halfway to the edge of awindow). If such a check is true, the point is used as the free flightmaximum spin. If neither test is met, the constraints are relaxed if themaximum backward spin less the minimum spin for the trial is >100 or ifthe hand acceleration increase (from dot above to the maximumacceleration) is at least 4 g's. If the constraint is met, then thepoint is accepted as the maximum free flight spin. Now with a maximumfree flight oscillation or spin identified, the previous minimum issought. If no local minimum is found, then a feature of time in handdoes not exist, and the bounce is not used.

If a minimum free flight oscillation is found, the free flight spin rateis set to the average of the maximum and minimum rates ((MAX+MIN)/2).The process then marks the first time that this spin rate occurs in thewindow, and also marks the last time this spin rate occurs before thehand acceleration peak. This section of data can then be assigned aconstant value. A determination may then be made of the times at whichthe ball has left the athlete's hand by finding, for each dribble, thefirst point after the peak of the hand contact acceleration where theacceleration reaches the level of the rightmost dot from above (i.e.,the first local minimum before the floor impact). The process thenrepeats for the remaining dribbles.

At this point, each dribble has been filtered and the free flight periodafter the last floor impact has been identified in terms of duration andspin rate. FIG. 13K shows a section of controlled dribbles that havebeen filtered and have the expected profile fit to them, for the firstathlete above. Again the left graphs represent angular velocity, whilethe right graphs represent translation acceleration. Also, the topgraphs show both filtered and unfiltered signals, whereas the lowergraphs show only filtered signals.

Returning to the process of FIG. 3B, at box 320, start and stop pointsfor a drill are determined. Some start/stop points have already beenidentified by the bounce processing process, although nearly all databetween impacts is used. Portions of the signal in which the spin rateis constant between successive floor impacts can indicate a ballspinning in motion in which no forces are acting on the object. Also,the process may identify gaps that are 2.5 times greater that dribblefrequency (other determinants may also be employed) and eliminates datain those gaps because those signals may indicate an impact on the sensorcausing a signal that is abnormal. The start/stops are then combinedwith any start/stops that were earlier identified by the prior portionof the process, and the process then checks to make sure there are atleast three good dribbles between start/stops. If there are fewer thanthree good dribbles between start/stops, such dribbles are eliminated.Then first and last bounces are identified and the beginning and enddata is trimmed.

At box 322, the process applies drill-specific processing to the data.Drill-specific processing may be a sub-process that recognizes that eachdrill may have certain attributes that make it unique from other drills.For example, a figure-eight dribbling drill in basketball requires thatthe athlete dribble around one leg, crossing the ball between the legsto the opposite hand, then repeating a dribble around the other leg. Thecrossover dribble may have a unique dribble signature that is differentfrom the other dribbles and unique to this drill. The drill specificprocessing can be designed to recognize this pattern for this particulardrill, which allows the scoring sub-process to count these occurrencesas part of its analysis. These occurrences may not appear in anotherdrill. For example, in a drill that requires the player to dribblebehind the back from hand to hand, there is no crossover dribblesignature to measure, and thus the drill-specific processing to scorevarious measurement points may differ.

At box 324, the output is formatted for transfer to a database, where itcan be accessed in the future for purposes of comparison to data ofother athletes or comparison to data form drills performed by the sameathlete in the future (i.e., so as to show progress by the athlete).When output is reformatted, various aspects of raw data (e.g.,acceleration forces) can be averaged, or standard deviations can beidentified of a plurality of bounces. These calculations are tabulated,and used in a pre-determined mathematical formula to create an outputthat can be understood by those who are may not be proficient at math.In this manner, for example, tabular data that can be easily searchedand compared, may be produced from data that represents the “shape” ofthe motion of the sporting device.

FIG. 3C is a flow chart for identifying particular events during a drillthat involves bouncing a ball. In general, the process is directedtoward recognizing a pattern of start/stop points in the motion data ofa ball that has undergone a drill controlled by an athlete. The processbegins at box 332, where a dribble frequency is determined, and alsoabnormal dribbles are identified, as by increased lengths in dribblefrequency that are above a stop limit that is defined as a certain levelabove the average dribble frequency. At boxes 334 and 336, the processfinds acceleration peaks in the data that are above minimum defined gforces. The process works on, and moves across, pairs of such points andthe data between them, where the first point in a pair is designated F1and the second is designated F2.

At box 338, the process determines whether the time between F1 and F2 iswithin a predetermined stop limit, which may be a factor of the dribblefrequency. If it is not, then the process pushes the point of F2 backinto F1 moves on to identify a next F2. If it is, then at box 342, theprocess determines whether there is a hand peak (H1) with a magnitudeabove a predetermined value of X, but less than a minimum defined gforce, herein shown as 1.2 g's. If there is, then the next peak (F2) isaccepted as the next floor bounce, and the prior F2 is transitioned toF1. If there is not, the process finds the next peak (P3), which isfound independent of its magnitude.

At box 348, the process determines if the current F2 is less than P3. Ifit is not, then F2 is assigned as a floor impact and F1 is determined tobe a stop. The process then indexes forward a position and repeats. Ifit is, then the process determines at box 352 whether the time betweenF1 and P3 is within a predetermined stop limit. If it is, then P3 isassigned as the next peak for a floor bounce, and F2 is assigned as ahand peak (and the process indexes forward to the next point). If it isnot, then F1 is assigned as a stop point, and a new search is begunstarting at P3.

Particular Description of Basketball Shooting Motion

The following section describes measurements that may be taken tocharacterize the motion involved in shooting a basket with a basketballusing, for example, inertial sensors in the basketball.

The following list of shooting metrics is presented as initial conceptsof the types of measurements that are capable.

-   Release time—the time from when the passed ball initially contacts    the shooter to the time when the ball is released at the end of the    shot motion-   Shot Velocity—the vector quantity can be calculated throughout the    shot process with particular interest in the velocity at shot    release-   Shot Plane—a plane of particular interest that contains a vertical    unit vector and the shot velocity vector calculated at the instant    of shot release.-   Shot Arc—the metric describes the path the ball travelled on the way    to the basket. The shot arc can be calculated from the velocity    vector at shot release, by calculating the inverse tangent of the    ratio of the vertical velocity component compared to the horizontal    velocity component.-   Spin Rate—the total spin rate of the ball at shot release. This    metric would be reported as degrees per second or revolutions per    minute (RPM)-   Spin Axis—The body fixed axis of the ball about which the ball is    spinning at shot release.-   Angular Velocity—this vector can be decomposed into components about    axes of importance to shooting. One important set of orthogonal axes    which are important to shooting is [backspin, sidespin, and rifle    spin]. Being able to determine what percentage of the total spin    rate can be decomposed onto each of these directions is critical to    developing proper shooting technique.-   Shot time—the time from when the shot is release till it contacts    the basket.-   Shot distance—horizontal distance from shot release point to the    basket. This measurement is what would be observed from an overhead    view of the shot. This metric is derived from shot velocity and shot    time.

FIGS. 4A-4B show sample motion data from basketball shots taken after apass. FIG. 4A shows sample data of a shot with annotation of the variousphases of a shot. The still period is the period of time where the ballis sitting still before the pass/shot sequence begins. The pass motionis the motion associated with the ball being picked up and thrown to theshooter. Once the pass is released the ball will travel through the airand the physics of this travel can be approximated as torque freemotion. The catch occurs when the ball arrives at the shooter. Themotion from the instant the shooter catches the ball till the shooterreleases the shot is defined as the shot motion. When the shooterreleases the ball it enters another free flight motion phase identifiedas the free flight of the shot. The free flight period, and the shot,ends when the ball impacts the basket.

As shown in FIG. 4B, from the raw data, some of the proposed shootingmetrics can be directly identified. The release time can clearly bedistinguished as the period of time between the end of the pass freeflight period and the beginning of the shot free flight period. The shottime is equivalent to the shot free flight period. The spin rate is themagnitude of the angular velocity vector during the shot free flightperiod.

FIGS. 5A and 5B show parameters that can define a basketball shot. Thereare two key planes, the plane of the floor and the shot plane. The floorplane can be described by directions such as the baseline, vertical, anda unit vector that points from the center of the baseline to the centerof the court (perpendicular to the baseline). This plane serves as areference for key aspects of the court. The shot plane is betterdescribed in FIG. 5B, but metrics such as shot arc and shot distance arebest described in FIG. 5A. Shot distance is the horizontal distance fromthe release position to the hoop position.

In the shot plane of FIG. 5B, the plane is defined by two vectors, avertical unit vector and the shot velocity at the instance of release.The ball cannot leave this plane during its flight towards the basketbecause no forces or torques act on the ball (ignoring presence of wind,or air drag). The shot velocity at release, {right arrow over (ν)}_(s),can be decomposed into a horizontal component, {right arrow over (ν_(s)_(h) )}, and a vertical component, {right arrow over (ν_(s) _(v) )}. Theshot arc is calculated as,

$\alpha = {\tan^{- 1}{\frac{v_{s_{v}}}{v_{s_{h}}}.}}$

When the ball is released it has some angular velocity, {right arrowover (ω)}, about some spin axis, {right arrow over (SA)}. This spin canbe decomposed about the shot plane axes, [Ī_(s), J_(s) , K _(s)]. Onlyspin about I_(s) leads to backspin and therefore spin about the otheraxes represents spin errors, assuming pure backspin is ideal shottechnique.

FIG. 6 shows example gyro and accelerometer data for a basketball shot.The data is measured about a set of orthogonal body fixed axes. In orderto calculate the shot plane and any metrics requiring the shot plane allsix signals above along with some information about initial conditionsare used.

Particular Description of Measured Exercises

This section describes particular artificial exercises that may beadministered to an athlete, or human subject, so as to test features ofthe subject such as speed, quickness, strength, and stamina. Theexercises are referred to as being artificial because they do notinvolve the subject actually performing actions that may occur in agame. Instead, they attempt to stress muscles or muscle groups that maybe used in a game, and isolate the muscle groups so as to betterlocalize a subject's strengths and weaknesses.

The exercises may be used to evaluate core strength and athletic abilityusing an instrumented ball, such as a basketball or medicine ball (ballwith a specified weight so as to increase the force required toaccelerate the ball.) Four example drills are described here todemonstrate different aspects of athleticism and strength that can bemeasured. The four drills are not meant to be an exhaustive list of thecapabilities, but are instead intended to provide initial concepts forhow an instrumented, weighted ball can be applied to athleticism andcore strength measurement.

Drill 1: Vertical Chest Past from a Lying Down Position

Description: The subject lies on their back with the ball starting fromrest on their chest. The subject then tries to throws the ball into theair using a chest pass form. The goal is to throw the ball as high aspossible with maximum accuracy so that the ball returns to the subject'shands. This cycle can then be repeated for a number of throws or for aset amount of seconds.

Measurement Goals:

-   Height of the throw—measure the initial launch velocity and the time    the ball is in the air and then calculate the height of the throw.-   Force of the throw—measure the acceleration applied to the ball    during the throw for a ball with known mass. Knowing the mass of the    ball and the acceleration applied to it the force of the throw can    be calculated.-   Accuracy of throw—measure the initial velocity vector relative to    the initial starting orientation to determine whether the ball is    thrown straight up.-   Consistency of Metric—For each metric above the variation across    multiple throws can be used to determine consistency as an    additional measure of proficiency.

Drill 2: Repeated Vertical Jump

Description: The subject holds the ball above their head and repeatedlytries to jump as high as possible. The subject is allowed to move theball relative to directly above their head but sometime during each jumpthe ball should be fully extended above their head.

Measurement Goals

-   Height of jump—measure the initial velocity of the jump and the time    of the jump to determine the height of the jump.-   Speed of jump—measure the time the subject is on the ground as they    load up to jump. This is important because 2 subjects may be able to    obtain the same height of jump, but if 1 subject can generate the    force required to jump to the height faster than the other, the    faster subject has an advantage in the sport of basketball.-   Consistency of Jump—by looking over a number of consecutive jumps    the degradation of the above metrics is an indicator of ability and    strength

Drill 3: Sit-Up with Side Twists

Description: The subject does a set of sit-ups or ties to do as manyreps as possible during a defined number of seconds. A single rep startsfrom a laying down position with the ball held still, the subject thenraises their shoulders off the ground to contract the abdominal muscles.While holding their shoulders off the ground the subject tries to movethe ball side to side as fast as possible, in a twisting motion. Eachtwist is concluded by tapping the ball against the ground. During eachrep there should be ‘2n’ total twists, ‘n’ to the right and ‘n’ to theleft.

Measurement Goals

-   Total number of reps—a measure of core strength is simply the number    of reps the subject can complete in the allotted time-   Speed of taps/twists—as the subject completes a tap the time between    taps can be measured and be used as a measure of core strength-   Consistency of rep time—as the subject completes multiple reps, both    the single rep time and the consistency of rep time are important    metrics of core strength. The consistency of rep time is an    indication of core strength endurance.-   Consistency of taps/twists—as the subject completes multiple reps    and therefore multiple taps per rep, the consistency of the speed of    taps is an indication of core strength endurance.

Drill 4: Chest Pass and Following Sprint

Description: The subject starts at Position 1 and the ball willinitially be placed in a fixed stand. A second position, Position 2, islocated a distance D from Position 1. The subject picks the ball up andthrows a chest pass as far as possible. The distance D should be chosenso that it is unlikely the subject will be able to throw the ball pastPosition 2. A drill assistant waits near Position 2. Once the ball hitsthe ground after the chest pass the assistant grabs the ball and placesit in a stand at Position 2. As soon as the subject throws the ball fromPosition 1 they sprint after it. The ball will be at the stand atposition 2 before the subject arrives. As the subject arrives atPosition 2 the subject picks up the ball, turns around and throws theball back to Position 1, again as hard as possible, with a chest passmotion. A second drill assistant is waiting at Position 1 and as soon asthe ball hits the ground the assistant grabs the ball and places it onthe stand at Position 1. Then, as before, the subject sprints after theball towards position 1 immediately after throwing the ball. This backand forth process is repeated as many times as possible during theallotted time.

Measurement Goals:

-   Distance of throw: by measuring the initial horizontal velocity of    the ball and the time the ball is in the air the horizontal distance    travelled can be calculated.-   Force of throw: by measuring the acceleration of the ball during the    throw phase along with knowing the mass of the ball the force of the    throw can be calculated.-   Sprint speed: the time from when the ball is thrown into the air up    until the ball is picked up from the stand is a measure of how quick    the subject has sprinted after the ball.-   Consistency of metrics: this drill is designed to illuminate how a    subject can perform a core strength task, throwing the ball, while    under cardiovascular stress, sprinting. Therefore the consistency of    distance of throw and force of throw are the main performance    metrics of this drill.

Collection and Storage of Motion Data

This section describes an example system and process that permits thecollection at a central system (e.g., a group of connected servers at asingle physical site) of motion data from remote terminals, such aslaptop computers that have been taken to physical rehabilitationfacilities, sports fairs, and the like. The systems and processes permitmotion data to be collected remotely and then passed to the serversystem for analysis and generation of human-understandable reportingfrom the data. Such a system may permit an organization to place asmaller amount of computing resources on mobile units, as compared tothe central system. As a result, it may be easier to update analysissoftware because the updates do not need to be communicated to all ofthe various remote data collection units. Also, where a system isconstantly gathering new data that it compares against test data as itarrives, a centralized system may have the benefit of providing a singleplace in which important data will be stored and analyzed. Also, anorganization may keep better security over proprietary processes byrunning those processes on a secured server system, rather thanscattering such information to a number of different users.

The system involves a software program connected to communicationdevices that confirms that motion data collected from a pre-definedseries of athletic motion events has been collected into a repository,sent to a second repository, and then successfully processed bysecondary algorithms prior to the completion of a physical activityevent. The process involves collecting live motion data from sensorsabout a specific drill, storing and compressing a file locally, andautomatically sending that compressed file to a second server where aprogram watches for its arrival. The program looks for a code at the endof the file to signal that the complete file has been received, beforeit is uploaded into a second processor and decompressed. The secondserver then sends it into a software process that counts the raw motiondata and then computes a result. The result is sent back to the localmachine. Along each of these touch points we confirm that files havebeen received and processed.

The system and process may also be described with respect to thefollowing exemplary features:

-   A Process to ensure that real-time motion data is being collected    from a specific player and a specific pre-determined series of    motions that will result in a score.-   A process to send large files to a central location for centralized    data processing and storage, where a specific quantified result is    returned to the sending location.-   A system that delivers a scoring result within a specified time    based on real-world motion data collected from a sports object. le-    we know how to get a score back within 240 seconds after the    completion of a motion event.-   A system that creates personalized diagnostic reporting of a motion    event based on the pre-defined motion movements (ie a sports drill)    of a person. “Personalized” includes a summary of measurements, a    comparison of measurements, and improvement strategies based on that    score.

The following describes the process flow in more detail.

Step 1: Create Event and Assign Drill Package

CRM software allows a user to create an event and assign a package ofdrills to that event. Players that are registered for that event willwork through the assigned drills. Once the event is created, theinformation is stored in the central database.

Step 2: Register a Player into the CRM system

A user may first input key demographic information: first and last name,DOB, sex, height, level of play, and email address. Once a player isregistered, the information is stored in the central database and thenthat user can be registered for the event and drill package.

Step 3: Administer the test to the Player

The process may then involve synchronizing an instrumented basketballwith a data collection computer. This is done through a local databaseand a key parameters file. The individual drill test files associatedwith the event drill package are then collected. Each file name encodesthe player's ID, the ID of the event at which the drill is beingcollected, the ID of the drill being completed, and the number of timesthat player has attempted the particular drill at the particular event.This same information along with the instrumented ball ID and player'sheight is encoded in the first line of the file. The file is initiallycreated on the local machine. Other locations for encoding suchinformation may also be used.

Once data collection is finished, the file is compressed and a CRCchecksum of the compressed file is calculated and added to the fileheader. The file is then transferred to the central server via FTP. Whenthe compressed file arrives and is acknowledged by a directory watchdog,the server calculates the CRC checksum of the file and compares it tothe calculated value that is contained within the file header. If theCRC checksums match, then the file upload is declared complete and adecompression routine is triggered. The file output from decompressionis sent to another directory which is being watched. When thedecompression finishes, the file is handed to MatLab for data processingand a copy is placed in the archive directory.

MatLab starts by running a processing algorithm that determines when thedrill is being executed and when the player has lost control. During thetime when the player is controlling the ball, MatLab analyzes when theball in contact with the players hand and when it is not. During thetime when the ball is in contact, MatLab analyzes metrics about how theball is being controlled (i.e. spin rate, force, etc.). MatLab finishesby exporting an analysis metrics file (if an error occurs an exceptionfile is produced).

The output directories of MatLab (Export and Exception) are watched byanother application. If a file appears in Exception, a notification ofthe failed test is sent out. If a file appears in Export, an attempt ismade to import it into the database. If the record is a new record, thenthe file is imported into the database and a copy of the file is putinto the archives. If the record already exists, the import is cancelledand the failed import is logged.

Once the file is imported into the database, the scoring algorithm runs.First, a check is made to see if the new database insert contains a topscore for any of the scoring elements. If it does, the top metric scoresare updated and the score is calculated. If it does not, then the scoreis calculated based on the previous top scores. The calculated score isthen sent back to the remote computer as verification that dataprocessing was completed. On the final drill of the sequence, theuploaded file contains additional encoded information to triggergeneration of a total score and to send a report for that player to theevent printer. At this point, the operator administering the test cansee that the drills have been completed and scored. The score that iscomputed may be either absolute, according to a defined base line, orrelative, as defined above a fixed or rolling (e.g., substantiallyconstantly updated) score for a population of other players, includingother players whose abilities have been benchmarked so that they mayserve as a base point for determining skills of other players.

The report is generated on the server and archived so it can easily beretrieved either by the player though a website generated by the systemor an operator through the CRM software.

Step 4: Making the Testing Results Accessible Through a Website

Each player is assigned a unique ID in the CRM database, which links theplayer to their test results. A player who has completed a test at anyevent can go to the website and login by providing their unique ID andtheir email address (the email address originally associated with theirregistration). With a valid login, the website queries the CRM databaseto determine which events the player attended and which reports areavailable. The player can select a report that they wish to view byselecting the event, the attempt, and what level of report they desire.There may or may not be a cost associated with retrieving thisinformation based on if they pre-paid for some reports or if they selectan advanced report. Once the transaction is completed, the report isautomatically generated and emailed to the player.

FIG. 12 shows a comparison between a process for making anon-instrumented basketball (or similar type of sporting ball) and aninstrumented basketball. In the figure, the non-instrumentedmanufacturing process is shown in the left-hand column, while theinstrumented process is shown in the right-hand column. The three stepsin each column show main actions that occur in the process, where thenon-instrumented ball may be a Spalding Infusion pump ball. The Infusionbasketball includes a built-in micro-pump that, with a twist, pops outof the ball and can be operated from outside the ball in order toinflate the ball. The pump may then be slid back into the ball andlocked, and the ball may be used as normal.

In FIG. 12, the first step for both types of balls involves providing arubber housing of an appropriate shape to be placed around the relevanthardware. The housing may include a peripheral edge along its upper endin a firm that is arranged to be fused with an inner bladder of abasketball. For example, the peripheral edge may define a generallycircular shape that is substantially in a single plane, or in a slideconvex plane that approximates the ultimate curve of a basketball.

The relevant hardware, such as a motion sensor may initially beassembled, programmed, and attached to a power source (battery), and mayin certain implementations be encased in a flexible insulative materialsuch as rubber that is attached to or is part of the housing. Althoughshown in the image as extending lengthwise into the ball, the sensor maybe arranged in other manners so as to ensure that the sensor sensesmotion that reflects the actual motion of the ball, and also to ensurethat the ball is balanced properly, and that such balance can bemaintained across a large number of manufactured balls.

The encased sensor may then be fused to the inside surface of the innerbladder of the basketball and/or fused into a hole left for the sensorin the bladder. Such action may involve heating the rubber to itsvulcanizing temperature and applying pressure to fuse the two rubberparts together. An appropriate temperature may be in the range of 90-170degrees Celsius (194-338 degrees F.), though the temperature may bemaintained below approximately 230 degrees Celsius, which may be thesolder reflow temperature for manufacturing the sensor assembly. At thisstage, the bladder may be made up of multiple separate panels that canthen be attached to each other to form the shape of the ball.

In both processes, the ball may then be wound with a nylon thread tobuild up the inner carcass of the ball. The outer panels may then bemolded onto the inner carcass, which part of the process may occur atabout 90-170 degrees C. The molding temperature is a function of therubber used in the basketball construction and that rubber'svulcanization temperature. Again, materials and temperatures may beselected to maintain the temperature of the sensor assembly below itssolder reflow temperature. There may also be components that are part ofthe sensor assembly that require even lower temperatures.

In certain implementations, the sensor assembly may be inserted into theball after it is manufactured via an aperture in the ball. In such asituation, the sensor could take the form of a long, narrow cylinder,and data transmission from the sensor assembly may occur either byremoving the sensor assembly from the ball and physically attaching itto a computing device, by powered wireless transmission, or by passivewireless transmission. For example, a coil used for charging the sensorassembly may also be used to pass data across short distances (e.g.,across the ball's wall) when it is interrogated by a corresponding loopin a reader on the outside of the ball. For example, if a base in whichthe ball is placed takes the form of a ring, the ring may have anelectrical coil circling its periphery and the ball may be arranged sothat a coil inside the ball is placed relative to the coil so that thesensor assembly can be both powered and interrogated. In certainimplementations, a battery for the sensor assembly may also be insertedinto the ball through a port, or aperture.

With the sensor assembly and its corresponding battery sealed inside theball, access to the battery becomes a problem. Such a problem may beaddresses by providing an inductive charging coil and related circuitry.As such, when the ball is placed into a recharging zone (which may bedefined by a ball stand that includes a ring whose inner diameter issmaller than the outer diameter of the ball, and the coils arepositioned to receive maximum charge when the ball is placed right-sideup into the stand. Alternatively, or in addition, a recharging jack inthe form of a female connector may be attached to the sensor assembly,and may be aligned with a hole in the exterior surface of the ball, muchlike a hole used by an air pump needle. A user may then insert arecharging jack into the hole in order to recharge the battery for thesensor assembly.

The sensor assembly may be activated and deactivated in various manners.As one example, the sensor assembly may be active all the time, and maysimply operate until it runs down. In such a situation, an owner of abasketball would need to determine when he or she was going to conducttests with the ball and then pre-charge it for an adequate time period.Alternatively, the ball may be programmed to enter a sleep mode when itis inactive for a set period of time (e.g., 10 minutes) and may beactivated on such a timer when a motion sensor determines that the ballhas been bounced or has been moved in a predetermined manner.Alternatively, a mechanical switch may be provided, such as through aport on the ball into which a pin or similar instrument may be insertedto turn the ball on or off. To confirm the user's input, the sensorassembly may provide a tone in response to the ball being turned on oroff (e.g., rising tones for turning on, and falling tones for turningoff).

FIG. 14 shows an example of a generic computer device 1400 and a genericmobile computer device 1450, which may be used with the techniquesdescribed here. Computing device 1400 is intended to represent variousforms of digital computers, such as laptops, desktops, workstations,personal digital assistants, servers, blade servers, mainframes, andother appropriate computers. Computing device 1450 is intended torepresent various forms of mobile devices, such as personal digitalassistants, cellular telephones, smart phones, and other similarcomputing devices. The components shown here, their connections andrelationships, and their functions, are meant to be exemplary only, andare not meant to limit implementations of the inventions describedand/or claimed in this document.

Computing device 1400 includes a processor 1402, memory 1404, a storagedevice 1406, a high-speed interface 1408 connecting to memory 1404 andhigh-speed expansion ports 1410, and a low speed interface 1415connecting to low speed bus 1414 and storage device 1406. Each of thecomponents 1402, 1404, 1406, 1408, 1410, and 1415, are interconnectedusing various busses, and may be mounted on a common motherboard or inother manners as appropriate. The processor 1402 can processinstructions for execution within the computing device 1400, includinginstructions stored in the memory 1404 or on the storage device 1406 todisplay graphical information for a GUI on an external input/outputdevice, such as display 1416 coupled to high speed interface 1408. Inother implementations, multiple processors and/or multiple buses may beused, as appropriate, along with multiple memories and types of memory.Also, multiple computing devices 1400 may be connected, with each deviceproviding portions of the necessary operations (e.g., as a server bank,a group of blade servers, or a multi-processor system).

The memory 1404 stores information within the computing device 1400. Inone implementation, the memory 1404 is a volatile memory unit or units.In another implementation, the memory 1404 is a non-volatile memory unitor units. The memory 1404 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 1406 is capable of providing mass storage for thecomputing device 1400. In one implementation, the storage device 1406may be or contain a computer-readable medium, such as a floppy diskdevice, a hard disk device, an optical disk device, or a tape device, aflash memory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 1404, the storage device1406, memory on processor 1402, or a propagated signal.

The high speed controller 1408 manages bandwidth-intensive operationsfor the computing device 1400, while the low speed controller 1415manages lower bandwidth-intensive operations. Such allocation offunctions is exemplary only. In one implementation, the high-speedcontroller 1408 is coupled to memory 1404, display 1416 (e.g., through agraphics processor or accelerator), and to high-speed expansion ports1410, which may accept various expansion cards (not shown). In theimplementation, low-speed controller 1415 is coupled to storage device1406 and low-speed expansion port 1414. The low-speed expansion port,which may include various communication ports (e.g., USB, Bluetooth,Ethernet, wireless Ethernet) may be coupled to one or more input/outputdevices, such as a keyboard, a pointing device, a scanner, or anetworking device such as a switch or router, e.g., through a networkadapter.

The computing device 1400 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 1420, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 1424. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 1422. Alternatively, components from computing device 1400 maybe combined with other components in a mobile device (not shown), suchas device 1450. Each of such devices may contain one or more ofcomputing device 1400, 1450, and an entire system may be made up ofmultiple computing devices 1400, 1450 communicating with each other.

Computing device 1450 includes a processor 1452, memory 1464, aninput/output device such as a display 1454, a communication interface1466, and a transceiver 1468, among other components. The device 1450may also be provided with a storage device, such as a microdrive orother device, to provide additional storage. Each of the components1450, 1452, 1464, 1454, 1466, and 1468, are interconnected using variousbuses, and several of the components may be mounted on a commonmotherboard or in other manners as appropriate.

The processor 1452 can execute instructions within the computing device1450, including instructions stored in the memory 1464. The processormay be implemented as a chipset of chips that include separate andmultiple analog and digital processors. The processor may provide, forexample, for coordination of the other components of the device 1450,such as control of user interfaces, applications run by device 1450, andwireless communication by device 1450.

Processor 1452 may communicate with a user through control interface1458 and display interface 1456 coupled to a display 1454. The display1454 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid CrystalDisplay) or an OLED (Organic Light Emitting Diode) display, or otherappropriate display technology. The display interface 1456 may compriseappropriate circuitry for driving the display 1454 to present graphicaland other information to a user. The control interface 1458 may receivecommands from a user and convert them for submission to the processor1452. In addition, an external interface 1462 may be provide incommunication with processor 1452, so as to enable near areacommunication of device 1450 with other devices. External interface 1462may provide, for example, for wired communication in someimplementations, or for wireless communication in other implementations,and multiple interfaces may also be used.

The memory 1464 stores information within the computing device 1450. Thememory 1464 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 1474 may also be provided andconnected to device 1450 through expansion interface 1472, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 1474 may provide extra storage spacefor device 1450, or may also store applications or other information fordevice 1450. Specifically, expansion memory 1474 may includeinstructions to carry out or supplement the processes described above,and may include secure information also. Thus, for example, expansionmemory 1474 may be provide as a security module for device 1450, and maybe programmed with instructions that permit secure use of device 1450.In addition, secure applications may be provided via the SIMM cards,along with additional information, such as placing identifyinginformation on the SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 1464, expansionmemory 1474, memory on processor 1452, or a propagated signal that maybe received, for example, over transceiver 1468 or external interface1462.

Device 1450 may communicate wirelessly through communication interface1466, which may include digital signal processing circuitry wherenecessary. Communication interface 1466 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 1468. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 1470 mayprovide additional navigation- and location-related wireless data todevice 1450, which may be used as appropriate by applications running ondevice 1450.

Device 1450 may also communicate audibly using audio codec 1460, whichmay receive spoken information from a user and convert it to usabledigital information. Audio codec 1460 may likewise generate audiblesound for a user, such as through a speaker, e.g., in a handset ofdevice 1450. Such sound may include sound from voice telephone calls,may include recorded sound (e.g., voice messages, music files, etc.) andmay also include sound generated by applications operating on device1450.

The computing device 1450 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 1480. It may also be implemented as part of asmartphone 1482, personal digital assistant, or other similar mobiledevice.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications may be made without departing fromthe spirit and scope of the invention. For example, much of thisdocument has been described with respect to measuring motion data forparticular drills, though other forms of data gathering and comparisonmay also be employed.

In addition, the logic flows depicted in the figures do not require theparticular order shown, or sequential order, to achieve desirableresults. In addition, other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherembodiments are within the scope of the following claims.

1. A computer-implemented athletic performance analysis method,comprising: obtaining, at a computer system, first motion data generatedby a test subject moving a test ball containing motion sensors through apredetermined exercise; analyzing in the first motion data, with thecomputer system, the data from the inertial sensors; and providing to aremote computer at a location of the subject a report regarding thefirst motion data, the report reflecting a comparison of the firstmotion data with corresponding motion data of other users who haveperformed the predetermined exercise.
 2. The method of claim 1, whereinthe predetermined exercise comprises repeatedly performing a commonmotion, and the report reflects the subject's stamina during repeatedperformance of the common motion as compare to other test subjects. 3.The method of claim 1, wherein the predetermined exercise comprisesthrowing a ball in the air, and analysis of the data comprises analyzingflight time of the ball and time in hand time of the ball.
 4. Acomputer-implemented method of capturing data indicative of athleticperformance, comprising: creating an event in a computer system;assigning a package of athletic drills to the event; registering anathlete with the computer system; correlating the athlete to the event;receiving data generated by motion sensors that are attached to theathlete or an object manipulated by the athlete during execution of heexercises; processing the received data to generate summary informationthat is descriptive of the athlete's performance; and making the summaryinformation available over a network for review to users of the computersystem who are authorized to see information about the athlete.
 5. Themethod of claim 4, wherein creating the event comprises first creatingthe event on a client computing device and then transmitting the eventto a computer server system.
 6. The method of claim 4, furthercomprising testing authenticity of the received data by comparing anidentifier that is received with the received data to an identifier thatis associated with the event.
 7. The method of claim 4, whereinprocessing the received data comprises scoring the data, wherein ahigher score represents more superior athletic performance by theathlete in executing a drill.
 8. An electronic sporting measurementmethod, comprising: measuring motion of a sports ball using one or moremotion detectors of an electronics assembly mounted inside the sportsball; forming a data communication link between the electronics assemblyand a consumer electronics device; transmitting data that representsmotion of the ball from the electronics assemble to the consumerelectronics device; and analyzing the transmitted data or furthertransmitting the data with the consumer electronics device for producingdata that reflects a skill level of a person who handled the sports ballwhile motion of the sports ball was measured.
 9. The method of claim 8,wherein measuring motion of the sports ball comprises measuring motionthrough a plurality of discrete sporting performance drills by theperson.
 10. The method of claim 9, further comprising storing the datain the electronics assembly in coordination with each of the discretesporting performance drills.
 11. The method of claim 8, whereintransmitting the data that represents motion of the ball compriseswirelessly transmitting the data through an outer cover of the sportsball.
 12. The method of claim 11, wherein the data is transmitted by apublic wireless standard.
 13. The method of claim 8, further comprisinguploading data concerning motion of the sports ball from the consumerelectronics device to a central server system over the internet, forcomparison of the uploaded data to uploaded data for other people. 14.The method of claim 8, wherein the consumer electronics device isselected from a group consisting of a personal computer, a consolegaming machine, and a wireless telephone computing device.
 15. Themethod of claim 14, further comprising operating a videogame on theconsumer electronics device using skills for a player in the videogamethat reflect skills determined from the transmitted data.
 16. The methodof claim 14, further comprising presenting to a user of the consumerelectronics device information that compares athletic performance of afirst user who moved the sports ball to one or more other users whomoved other sports balls.
 17. The method of claim 15, further comprisingcomparing athletic performance of two users in close proximity to eachother who both performed athletic drills with the one or more sportsballs and captured motion data while performing the athletic drills. 18.The method of claim 8, further comprising measuring motion of the sportsball using sensors in a floor surface on which the sports ball is beinghandled or using optical sensors aimed at the sports ball.